#include <stdio.h>

enum Month
{
	JAN = 1,
	FEB,
	MAR,
	APRIL,
	MAY,
	JUNE,
	JULY,
	AUGUST,
	SEPTEMBER,
	OCTOBER,
	NOVEMBER,
	DECEMBER
};


/*
* 函数名称: add
* 函数功能: 计算两个正数之和
* 输入参数: @int x, 求和因子
*           @int y, 求和因子
* 返回值: int, 求和结果
*/
int add(int x, int y)
{
	return x + y;
}

int main(void)
{
	int a = 1;
	int b = 2;
	printf("size of a = %d", sizeof(a)); // ok
	printf("size of a = %d", sizeof a); // ok
	printf("size of a = %d", sizeof(int)); // ok
	// printf("size of a = %d", sizeof int));	// error
	
	int sum;
	sum = add(a, b);
	// switch(sum)
	// {
	// 	case 1:
	// 	case 2:
	// 	case 3:
	// 	case 4: // 可读性太差(不知道代表的啥意思), 且不利用维护, 应该写成一个变量, 想要修改时只修改这个变量即可, 这就引出了枚举
	// 		printf("MONth %d has 31days",sum);
	// 		break;
	// }
	switch (sum)
	{
	case JAN:
	case FEB:
	case MAR:
	case APRIL:
	case MAY:
	case JUNE:
	case JULY:
	case AUGUST:
	case SEPTEMBER:
	case OCTOBER:
	case NOVEMBER:
	case DECEMBER:
		printf("MONth %d has 31days",sum);
		break;
	default:
		printf("全部case都没有执行的时候, 才会执行我!");
	}
	printf("sum is %d\n", sum);
    return 0;
}

/**
 * 枚举元素的类型是int
 * 如果没有明确赋值, 数值就从0开始递增,依次增加1
*/
